package com.j180.service.user;

import com.j180.bean.PageBean;
import com.j180.bean.User;
import org.apache.ibatis.annotations.*;

import java.util.List;

public interface IUserService {
    /**
     * 用户登录
     * @param username 用户
     * @param pwd 密码（用md5加密）
     * @return null 表示失败，不是null表示
     */
    User userLogin(@Param("username") String username, @Param("pwd") String pwd);

    /**
     * 用户注册 注册后状态为待审核
     * @param user 注册的用户信息
     * @return 0 失败，  1 成功
     */
    int userRegister(User user);

    /**
     * 设置用户状态
     *  1. 平台管理员在审核后修改用户的状态（通过与不通过）
     *  2. 当平台管理员对某用户进行禁用是将该用户的状态改为不可用
     * @param state 用户状态
     * @param id 用户id
     * @return 1 成功 ， 0 失败
     */
    int setUserState(@Param("state") String state, @Param("id") int id);

    /**
     * 分页查询用户
     * @param curPage 当前页数
     * @param pageSize 总页数
     * @return PageBean类型，分页对象
     */
    PageBean<User> getUserInfosByPage(int curPage, int pageSize);

    /**
     * 根据id查询用户信息
     * @param id 用户id
     * @return 用户类
     */
    User getUserInfoById(@Param("id") int id);

    /**
     *  修改用户信息
     * @param user 修改后的用户的所有信息
     * @return 1 成功 ， 0 失败
     */
    int updateUserInfo(User user);

    /**
     * 删除id所对应的用户信息
     * @param id
     * @return
     */
    int deleteUserById(@Param("id") int id);

    /**
     * 查询注册未审核的用户
     * @param state
     * @return
     */
    List<User> getRegisterUser(@Param("state") String state);
}